
#ifndef STRIPESHAPEPANEL_H
#define STRIPESHAPEPANEL_H

#include <BImage>
#include <BDoubleSpinBox>
#include <BFloatSpinBox>
#include <BRealSpinBox>
#include <BSpinBox>
#include <BGroupBox>
#include <BButton>
#include <BCheckBox>
#include <BGroupBox>
#include <BColorDialog>

#include "DrawLineStripeFilter.h"
#include "LineStripe.h"

class LineStripePanel : public BGroupBox
{
	BOBJECT(LineStripePanel)
public:
	LineStripePanel(BWidget* parent = 0);
	~LineStripePanel();

protected:
	void slotAssetChanged(BObject* object, const BValue& value);
	void slotDrawButtonToggled(BObject* object, const BValue& value);
	void slotInverseButtonClicked(BObject* object, const BValue& value);
	void slotLineWidthEditFinished(BObject* object, const BValue& value);
	void slotLineColorButtonClicked(BObject* object, const BValue& value);
	void slotPointCountSpinBoxFramed(BWidget* widget, const BValue& value);

protected:
	virtual void styleEvent(const BEvent& event);

	virtual void showEvent(const BEvent& event);
	virtual void hideEvent(const BEvent& event);

private:
	BButton*				_drawButton;
	BButton*				_inverseButton;
	BFloatSpinBox*			_lineWidthSpinBox;
	BButton*				_lineColorButton;
	BSpinBox*				_pointCountSpinBox;
	BRealSpinBox*			_lengthSpinBox;
	BHolder<BColorDialog>	_colorDialog;
	BImageHolder			_loopOpenImage;
	BImageHolder			_loopCloseImage;
	BHolder<DrawLineStripeFilter>	_drawFilter;
};

#endif
